home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 076-100 / disk_097 / splines / readme < prev    next >
Text File  |  1992-05-06  |  4KB  |  108 lines

  1.  
  2. Welcome to the Wonderful World of Splines            by Helene (Lee) Taran
  3.                    
  4. OVERVIEW:
  5.  
  6.     This program demonstrates various curve fitting and rendering
  7.     techniques. The user chooses a sequence of points and a curve
  8.     type, and the program generates and displays the appropriate
  9.     curve.  A simple <..well...it looks simple> interface allows
  10.     the user to add, remove, and relocate points, in addition to
  11.     selecting a curve type.    
  12.  
  13.  
  14.     Historical Note:  
  15.        This program was written for my third assignment in 
  16.        CS248A "Introduction to Computer Graphics" at Stanford.
  17.        It is an honor code violation for anyone to submit this program 
  18.        for any class under any name other than my own. 
  19.        
  20. COMPILING:
  21.     
  22.     This program was compiled under Manx 3.30e using the +l option
  23.     (...I was too lazy to figure out int lengths...). The makefile
  24.     contains everything you need to put this mess together.  
  25.  
  26.  
  27. INTERFACE:
  28.  
  29.     When the program is started, it fills the screen (wipes out the
  30.     window title bar), and draws a spline through 3 control points.
  31.  
  32.     The program maintains a current sequence of control points  and
  33.     a current curve type. Whenever either is changed, the window is
  34.     redrawn to show the the positions of the control points and
  35.     the curve defined by them.
  36.  
  37.     To change the control points, the user presses the left mouse
  38.     button near one of the control points. The program pops up 
  39.     a menu (right under the mouse position!) from which the user can
  40.     choose one of:
  41.  
  42.           -  Move this control point to a new location
  43.           -  Add a control point before this one 
  44.           -  Add a control point after this one
  45.           -  Remove this control point
  46.  
  47.    To change the curve type, the user presses the mouse button
  48.    elsewhere in the window. The program pops up a menu, from which
  49.    the user can select a new curve type:
  50.   
  51.           - Open cubic bspline
  52.           - Closed cubic bspline
  53.           - Open natural cubic spline
  54.           - Closed natural cubic spline
  55.           - Open cubic bspline with triple knotted endpoints
  56.  
  57.         Addition Items in this menu:
  58.  
  59.           - Redraw the current curve
  60.           - Draw/Erase the curve construction lines (AFrame)
  61.           - Quit
  62.        
  63.  
  64. FILE DESCRIPTIONS:
  65.  
  66.   spline:
  67.        The executable.
  68.  
  69.   popmenu.h, popmenu.c: 
  70.        These files implement all of the popup menu routines. To
  71.        use the popup menu package, see popmenu.README
  72.  
  73.   spline.h, spline.c: 
  74.        Constant declarations and Main program, respectively. The
  75.        main program basically just sleeps until the user does something
  76.        (clicks a mouse button) and then calls ProcessCmd to determine
  77.        what to do next.
  78.  
  79.   sprt.c: 
  80.        Sets up the environment. Contains routins to the necessary
  81.        libraries, set up the screen, window, colors, popup menus
  82.        that are being used.  Also contains routines to close
  83.        everything and signal fatal errors.
  84.  
  85.   bspline.c:
  86.        Implements the three basic bspline drawing routines.
  87.  
  88.   bezier.h, bezier.c:
  89.        These files implement a bezier curve render. The basic
  90.        algorithm was outlined for us in CS248A.
  91.  
  92.   cmds.c:
  93.        This file contains routines determine what's done when
  94.        a user selects a particular item from a given menu.
  95.  
  96.   dlist.h, dlist.c:
  97.        These files implement a general interface to  doubly linked 
  98.        circular lists. Provides O(1) access to the first and
  99.        last elements of the list, and O(1) access to the length
  100.        of the list.        
  101.        
  102.   interpl.c:  
  103.        Implements the interpolation and rendering of natural
  104.        cubic splines (both open and closed). The rendering routines
  105.        depend on the bspline drawing routines.
  106.     
  107. BUGS : none known.
  108.